import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_demo/demo/test/test_demo.dart';

//系统的单元测试
//执行 flutter test 测试是否通过  单独文件：flutter test 目录/文件.dart 
void main() {
  //方法测试
  test('should return hello + something', (){
    var string = NinghaoTestDemo.greet('ninghao');
    expect(string, 'hello ninghao'); //变量  结果 相同则通过
  });

  //组件测试
  testWidgets('widget testing demo', (WidgetTester tester) async{
    await tester.pumpWidget(
      const MaterialApp(
        home: TestDemo(), //测试的 Controller
      )
    );
    final labelTest = find.text('hello');
    // expect(labelTest, findsNothing); //没有发现小部件
    // expect(labelTest, findsOneWidget); //发现一个小部件
    expect(labelTest, findsNWidgets(1)); //发现指定数量小部件

    //整体思路 找到文字0的组件 并点击组件 文字0变为1
    final actionChipLabelText = find.text('0');
    expect(actionChipLabelText, findsOneWidget); //找到文字为0 的组件

    final actionChip = find.byType(ActionChip); //找到ActionChip类型的组件
    await tester.tap(actionChip); //点击组件
    await tester.pump(); //组件有变化 需要重建一下

    final actionChipLabelTextAfterTap = find.text('1'); 
    expect(actionChipLabelTextAfterTap, findsOneWidget); //找到文字为1 的组件
    expect(actionChipLabelText, findsNothing); //文字为0 的组件没有了


  });


  
}